<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.opengis.net/swe/1.0.1" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:swe="http://www.opengis.net/swe/1.0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.1">
	<xs:annotation>
		<xs:documentation>Schema for defining different types of curves based on aggregate data types

				Copyright (c) 2007 OGC, All Rights Reserved.
				For conditions, see OGC Software Notice - http://www.opengeospatial.org/legal/
		</xs:documentation>
	</xs:annotation>
	<!-- ================================================= -->
	<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../gml/3.1.1/base/gml.xsd"/>
	<xs:include schemaLocation="./aggregateTypes.xsd"/>
	<!-- ================================================= -->
	<!--                  Curve Components                 -->
	<!-- ================================================= -->
	<xs:element name="Curve" type="swe:CurveType" substitutionGroup="swe:AbstractDataArray">
		<xs:annotation>
			<xs:documentation>Curve describing variations of a parameter vs. another quantity</xs:documentation>
		</xs:annotation>
	</xs:element>
	<!-- ........ -->
	<xs:complexType name="CurveType">
		<xs:complexContent>
			<xs:extension base="swe:AbstractDataArrayType">
				<xs:sequence>
					<xs:element name="elementType" type="swe:SimpleDataRecordPropertyType"/>
					<xs:group ref="swe:EncodedValuesGroup" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ........ -->
	<xs:complexType name="CurvePropertyType">
		<xs:annotation>
			<xs:documentation>Curve is a data-type so usually appears "by value" rather than by reference.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="swe:Curve"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ================================================= -->
	<xs:element name="NormalizedCurve" type="swe:NormalizedCurveType" substitutionGroup="swe:AbstractDataRecord"/>
	<xs:complexType name="NormalizedCurveType">
		<xs:complexContent>
			<xs:extension base="swe:AbstractDataRecordType">
				<xs:sequence>
					<xs:element name="inputGain" type="swe:QuantityPropertyType" minOccurs="0"/>
					<xs:element name="inputBias" type="swe:QuantityPropertyType" minOccurs="0"/>
					<xs:element name="outputGain" type="swe:QuantityPropertyType" minOccurs="0"/>
					<xs:element name="outputBias" type="swe:QuantityPropertyType" minOccurs="0"/>
					<xs:element name="interpolationMethod" type="swe:CategoryPropertyType" minOccurs="0"/>
					<xs:element name="extrapolationMethod" type="swe:CategoryPropertyType" minOccurs="0"/>
					<xs:element name="function" type="swe:CurvePropertyType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ================================================= -->
	<!--               Data Component Groups               -->
	<!-- ================================================= -->
	<xs:group name="Curves">
		<xs:choice>
			<xs:element ref="swe:Curve"/>
			<xs:element ref="swe:NormalizedCurve"/>
		</xs:choice>
	</xs:group>
</xs:schema>
